package servidor.gerenciadorsalasjogo.so;

import java.rmi.RemoteException;
import java.util.List;

import comum.rn.RNInfoSalaJogo;
import comum.rn.RNJogada;
import comum.rn.RNPeca;
import comum.so.SOServidorEntrada;

public class SOGerenciadorSalasJogoSaidaImpl implements
		SOGerenciadorSalasJogoSaida {

	private SOServidorEntrada servidorEntrada;

	@Override
	public void informarEntradaJogador(String jogadorRecebe,
			String jogadorQueEntrou, RNInfoSalaJogo infoSalaJogo)
			throws RemoteException {
		getServidorEntrada().informarEntradaJogador(jogadorRecebe,
				jogadorQueEntrou, infoSalaJogo);

	}

	@Override
	public void informarFimPartida(String jogadorRecebe, String mensagem)
			throws RemoteException {
		getServidorEntrada().informarFimPartida(jogadorRecebe, mensagem);

	}

	@Override
	public void informarInicioPartida(String jogadorQueRecebe,
			List<RNPeca> pecas, String primeiroAJogar) throws RemoteException {
		getServidorEntrada().informarInicioPartida(jogadorQueRecebe, pecas,
				primeiroAJogar);
	}

	@Override
	public void informarJogada(String jogadorQueRecebe, String jogadorQueJogou,
			RNJogada jogada, String novoJogadorEmTurno) throws RemoteException {
		getServidorEntrada().informarJogada(jogadorQueRecebe, jogadorQueJogou,
				jogada, novoJogadorEmTurno);
	}

	@Override
	public void informarMudancaMesa(String jogadorRecebe, Integer[] posicoesMesa)
			throws RemoteException {
		getServidorEntrada().informarMudancaMesa(jogadorRecebe, posicoesMesa);

	}

	@Override
	public void informarSaidaJogador(String jogadorRecebe,
			String jogadorQueSaiu, RNInfoSalaJogo infoSalaJogo)
			throws RemoteException {
		getServidorEntrada().informarSaidaJogador(jogadorRecebe,
				jogadorQueSaiu, infoSalaJogo);
	}

	public void setServidorEntrada(SOServidorEntrada servidorEntrada) {
		this.servidorEntrada = servidorEntrada;
	}

	protected SOServidorEntrada getServidorEntrada() {
		return servidorEntrada;
	}
}
